package com.bujunjie.study.realtime.common.enums;

import lombok.Getter;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * <p>flink CDC 数据类型</p>
 *
 * @author bu.junjie
 * @version 1.0.0
 * @createTime 2025/9/12 16:10
 */
@Getter
public enum MaxwellOpEnum {

    /**
     * 创建
     */
    INSERT("insert", "创建"),

    /**
     * 更新
     */
    UPDATE("update", "更新"),
    /**
     * 删除
     */
    DELETE("delete", "删除"),
    /**
     * 系统初始化 进行初始化同步数据
     */
    BOOTSTRAP_INSERT("bootstrap-insert ", "代表系统初始化"),
    ;

    /**
     * 操作类型
     */
    private final String op;

    /**
     * 描述
     */
    private final String desc;

    MaxwellOpEnum(String op, String desc) {
        this.op = op;
        this.desc = desc;
    }


    /**
     * <p>校验是否是复合规范的数据</p>
     *
     * @param type 操作类型
     * @return 返回是否是复合规范的数据
     * @author bu.junjie
     * @date 2025/9/12 16:43
     */
    public static boolean checkOpType(String type) {
        List<String> opList = Arrays.stream(MaxwellOpEnum.values()).map(MaxwellOpEnum::getOp).collect(Collectors.toList());
        return opList.contains(type);
    }
}
